Large organisations often have several geographically separate branch sites which each have multiple machines, including servers, clients and bare metal machines, connected across their own local network such as a Local Area Network (“LAN”). These machines may be co-ordinated from a central or controlling location, across a larger network such as a Wide Area Network (“WAN”).
A server is a piece of equipment that client devices can make requests to for data or software. Although today files can be sent to and received from most other computers, the primary purpose of a server is this inter-device activity. A server is therefore usually characterised by both its hardware and its software, being always network-connected and having large storage capacity and high network connectivity. This allows it to respond to client requests at any time and at high volume. These characteristics make a server relatively expensive.
A bare metal machine is a machine carrying only the software, sometimes known as firmware, that will run when a machine is first powered up. In a personal computer, this might for instance be known as the BIOS or basic input/output system. In a network environment, the firmware allows a machine to connect to a network and to send and receive communications prior to the machine having a network address such as an IP (Internet Protocol) address.
Before a machine is useful in a networked environment such as that of a corporate entity, it needs both an operating system and to be configured appropriately for its role. Known methods for doing this include installing an operating system either from local media or over a network. Organisations often have a set of pre-configured “images” containing the operating system files. The image also provides data required for configuration of the machine and can potentially be large, for example eight or nine gigabytes. Booting is a bootstrapping process that causes operating system programs to execute when a machine is turned on. To deploy operating system files (images), it is known to boot a machine first to a pre-installation environment. This is a lightweight operating system usually booted to random access memory (“RAM”) via a network or compact disc (“CD”) and providing a cut-down version of a fully featured operating system. The pre-installation environment will provide at least drivers for hardware and for anything else required to enable an operating system installation, but lacks almost all of the applications, accessories and utilities of the fully featured operating system. It is also usually non-specific, one pre-installation environment being capable of use in installing fully featured operating systems from more than one software family. For example, a Linux pre-installation environment could potentially be used to install a Windows XP operating system.
Once the pre-installation environment is present, it is then possible to deploy the operating system image to the local hard disk. Both of these steps will commonly occur over a LAN or WAN network depending upon configuration.
Although the work involved in deploying an image to one machine may not be major, the task of deploying an image to many machines which may be distributed over branch networks, for instance at first installation or after an upgrade, can be very big and often involves much manual effort. It might be managed from a central server, for instance over a WAN, but the management load and traffic over the WAN can be disruptive. For example, machines doing different jobs and/or at different branch sites may need different respective images. It is thus known to provide local boot servers to which the machines can be directed, thus at least partially reducing the load on the WAN. For example, Microsoft Corporation offers a server carrying software providing a “Remote Installation Service” for this purpose.
In more detail, installation might be provided as follows. A “bare metal” machine has firmware, or a network interface card, which allows it to connect to a network in order to find and download a network boot program. This allows the machine to boot from data stored in the network rather than from a disc. Many machines nowadays are equipped to do this using “PXE”, a pre-installation environment mechanism originally developed by Intel Corporation. When installation is required, PXE firmware on the bare metal machine broadcasts a DHCPDISCOVER packet with a PXE extension. (DHCP, “Dynamic Host Configuration Protocol”, is a widely known and used protocol.) If a PXE-enabled server detects the DHCPDISCOVER packet, it will (amongst other functions) respond by delivering configuration information including the name of a boot image file or network boot program (“NBP”) of known type which will enable the bare metal machine to complete installation.
U.S. Pat. No. 7,085,921 discloses an embedded computing system with a central boot server supplying subnets of “target” servers. Embedded computing systems comprise special purpose machines which perform pre-defined tasks, being completely encapsulated by the devices they provide. Examples are routers and automatic telling machines (“ATMs”). Using the PXE mechanism, a target server will use a broadcast message to elicit a response from a PXE server. In order for booting to proceed, there thus needs to be a PXE server that will pick up the broadcast message and U.S. Pat. No. 7,085,921 addresses the issue of how best to provide the PXE servers. Options that U.S. Pat. No. 7,085,921 explicitly avoids are: i) providing a general purpose server of known type on each subnet; and ii) providing specialist machines dedicated in both hardware and software terms to doing the job. A general purpose server would be very underused if its sole purpose were to facilitate communication between target servers and a central boot server, while specialist machines would be expensive to develop. Thus, and instead, additional embedded computers are provided at the subnets as PXE servers. These are based on general purpose hardware rather than conventional server hardware but carry software enabling them to pick up PXE requests and supply a network boot program and the address of the boot server. A target server will then be able to complete the booting process via the boot server. In one arrangement, U.S. Pat. No. 7,085,921 describes supplying boot images (data and software required for a fully booted machine) centrally from the boot server, while in a different arrangement the embedded computers are served boot images from the boot server, and these are stored by the embedded computers for subsequent supply to target servers. It will be appreciated that in both arrangements the boot images are primarily held and managed centrally at the boot server. Since it is concerned with an embedded computing system based specifically on servers, U.S. Pat. No. 7,085,921 relates to a generally centralised and predefined system in which boot images are relatively small. The largest boot image size quoted is less than 20 MB.
Microsoft™ Corporation deals with networks of general purpose machines for use in many locations and work environments. Microsoft have long offered systems management solutions and now offer an Operating System Deployment (“OSD”) Feature Pack which enhances their Systems Management Server 2003 (“SMS”) by providing a way of creating and deploying Windows operating system (“OS”) images.
The OSD Feature Pack allows an administrator to:                capture an image from an existing computer in a format called the Microsoft Windows Imaging (“WIM”) format        customise and manage settings for individual deployments, including distribution and network settings and notifications        preserve user profiles when installing new OSs        deploy OS images        obtain reports on specific deployments for measuring success and troubleshooting        
However, for some systems the images can be very large, for instance of the order of 10 GB, and in a system with a WAN connection between subnets and a centralised SMS the traffic generated can be a significant problem. It is an option to provide local SMS servers in at least some of the subnets to save bandwidth on the WAN but this is a relatively expensive approach. An enhancement to Microsoft's OSD Feature Pack developed by 1E Ltd, the present applicant, provides a less centralised process for OS deployments without there having to be SMS servers at every branch. This enhancement, known as the OSD Plus Pack, bundles several components to provide the following:                OSD Branch: bandwidth-efficient “download and execute” capabilities which support image distribution to the subnets (or branches) whereby an OSD image is downloaded once over the WAN and then shared locally at the subnet        Local Multicast: increased scalability and speed by using multicast to distribute the OSD image package at the subnet        AppMigrator: automatic reinstallation of the latest versions of applications which existed on a user's machine        PXE Lite: a local ability to deploy images to “bare metal” machines on a subnet using workstations in the role of designated PXE servers        
OSD Branch and the local multicast facility are both implemented as described in the US patent application published as US2006159090, in the name of the present applicant.
The role of the PXE Lite workstation is effectively to function as a PXE server, thus to deliver a pre-installation environment such as Windows PE to the bare metal machine. However, the PXE Lite workstation is a general purpose end user machine and not a dedicated server. This keeps costs down while reducing network traffic to a centralised facility.
Once a given bare metal machine has received a pre-installation environment, it is enabled to find and install a full operating system and operating system image, which it will do in known manner. In the past, in a system of any complexity, the installation of the full operating system, including data, settings and application software, meant a skilled person had to be available and present at the machine on which installation is taking place in the sub-network, and this is the case even where OSD Branch is used to ensure the local presence of OS images. This represents a high overhead in manpower.
Microsoft's Remote Installation Service (“RIS”) goes some way to alleviating the overhead requirement by providing a local server with the ability to administer the OS installation process on machines in its sub-network but firstly there has to be a local server, which is not always present or available, and secondly the requirement for a skilled person at the sub-network remains, albeit at the local server rather than physically present at each installing machine.